Method and system for the direct manipulation of cells in an electronic spreadsheet program or the like

ABSTRACT

A method and system for directly manipulating cells in an electronic spreadsheet program or the like. After the user has selected the cells to be manipulated, the user merely positions the cursor over any part of the outside border of the selected group of cells, depresses and holds down a predefined mouse button, drags the border to a new location and then releases the mouse button, Depending upon which mouse button or control key was depressed, the user may be presented with options such as whether the manipulation should be to move or copy the selected cells, or the selected cells may be moved and no option presented. Depending upon which control key was depressed or upon the location of the repositioned border, the selected cells may be pasted over existing cells, or they may be inserted into the spreadsheet causing the existing cells to be shifted right and/or down.

RELATED APPLICATIONS

[0001] This Application is a continuation of prior U.S. patentapplication Ser. No. 09/596,525, filed Jun. 19, 2000 which is acontinuation of prior U.S. patent application Ser. No. 08/787,816, filedJan. 23, 1997, now U.S. Pat. No. 6,112,214, which is a continuation ofprior U.S. patent application Ser. No. 08/219,868, filed Mar. 30, 1994,now U.S. Pat. No. 5,623,282, which is a continuation of prior U.S.patent application Ser. No. 07/815,656, filed Dec. 31, 1991.

TECHNICAL FIELD

[0002] This invention relates generally to data manipulation andparticularly to the direct manipulation of cells by a user of anelectronic spreadsheet system or the like.

BACKGROUND OF THE INVENTION

[0003] A primary use of computers, especially personal computers, isinformation processing. There are a wide variety of application programsavailable that “computerize” information processing tasks that werepreviously performed manually. Once such application program isMicrosoft Excel, an accounting program for personal or business use. Inapplication programs such as Microsoft Excel, a worksheet is the primarydocument used to store and manipulate data. One commonly used type ofworksheet is a spreadsheet, which is a two dimensional, rectangular gridof a finite number of columns and rows. The intersection of each columnand row is a cell, the basic unit of a worksheet in which a user mayenter and store data. The active cell is displayed with a dark border,which indicates that the cell is selected. The next data the user typesafter selecting a cell will be entered into the selected cell or thenext command the user chooses will be applied to the selected cell. Ifmore than one cell is selected, the first cell selected is the activecell.

[0004] The ability to manipulate selected portions of data in aworksheet is a common feature of electronic spreadsheet programs.Presently, there are spreadsheet programs which allow a user to select acell or group of cells and manipulate it in some way, such as moving itto a new location in the worksheet, copying it to a new location in theworksheet, or deleting it. The problem with these prior art systems isthat they require a user to go through several time-consuming stepsbefore the cell manipulation is actually carried out.

[0005] For example, to move a cell or a group of cells from one locationto another in a worksheet using a typical prior art system, a user isrequired to (1) select the cell or group of cells to be manipulated; (2)delete or “cut” the selected cell or group of cells from the firstlocation using a combination of keys or by selecting the delete or cutcommand; (3) move the cursor to the new location in the worksheet wherethe selected cell or group of cells is to be moved; and (4) insert or“paste” the selected cell or group of cells at the new location using acombination of keys or by selecting the insert or paste command. Similarsteps are required for copying the contents of a cell or group of cellsfrom one location to another in a document.

[0006] In electronic spreadsheet programs such as Microsoft Excel thatsupport mouse operations, a user may select a cell with a mouse bypositioning the pointer over a cell and then depressing and releasing apredefined mouse button. A user may select a group of cells with a mouseby positioning the pointer at the beginning of the selection, depressinga predefined mouse button, dragging the pointer to the end of theselection while holding down the mouse button, and then releasing themouse button. After selection, cut and paste operations such asdescribed above may be performed on the selected cell or cells.

[0007] The prior art systems require a user to be familiar with avariety of function keys and edit commands. When a user is makingnumerous revisions to a worksheet it is inconvenient to have to performso many steps in order to move or copy cells from one location toanother in a worksheet. The user is forced to perform awkward keycombinations such as depressing the shift key and the delete key at thesame time. No technique is known in the electronic spreadsheetenvironment for moving or copying cells without going through thetime-consuming cut and paste type operations.

SUMMARY AND OBJECTS OF THE INVENTION

[0008] In a preferred embodiment, the present invention contemplates amethod and system for directly manipulating cells in an electronicspreadsheet program or the like. After the user has selected the cellsto be manipulated, the manipulation may be carried out with littleeffort on the part of the user. In a preferred embodiment, to move agroup of selected cells, the user merely positions the cursor over anypart of the outside border of the selected group of cells, depresses andholds down a predefined mouse button, drags the border to a new locationand then releases the mouse button. Depending upon which mouse button orcontrol key was depressed, the user may be presented with options suchas whether the manipulation should be to move or copy the selectedcells, or the selected cells may be moved and no option presented.Depending upon which control key was depressed or upon the location ofthe repositioned border, the selected cells may be pasted over existingcells, or they may be inserted into the spreadsheet causing the existingcells to be shifted right and/or down.

[0009] Accordingly, it is an object of the present invention to providean improved method and system for directly manipulating cells in anelectronic spreadsheet environment or the like.

[0010] It is another object of the present invention to provide a visualrepresentation of selected cells being moved or copied to a differentlocation in the worksheet.

[0011] A further object of the present invention is to provide a visualindicator of when selected cells are to be inserted rather than pastedin the worksheet. These and other objects will be apparent to those ofordinary skill in the art as the invention is described more fullybelow.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012]FIG. 1 shows a computer system running an electronic spreadsheetprogram, the computer system having a mouse, keyboard, and displayscreen.

[0013]FIG. 2 shows a typical electronic spreadsheet window, where theworksheet is arranged in columns and rows, and a pointer as they areseen on the display screen of FIG. 1.

[0014]FIG. 3 shows a selected group of cells with a dark border in theelectronic spreadsheet window, as viewed on the display screen of FIG.1.

[0015]FIG. 4 shows the new shape of the pointer after a user positionsthe pointer over the border of the selected group of cells in theelectronic spreadsheet window, as viewed on the display screen of FIG.1.

[0016]FIG. 5 shows the electronic spreadsheet window, as viewed on thedisplay screen of FIG. 1 after a user has dragged the now movable borderto the location where the selected group of cells is to be placed.

[0017]FIG. 6 shows the electronic spreadsheet window, as viewed on thedisplay screen of FIG. 1, after a user has dragged the now movableborder to a new location and released the predefined mouse button,causing the selected group of cells to be moved to the new location.

[0018]FIG. 7 shows the electronic spreadsheet window, as viewed on thedisplay screen, after a user has positioned the pointer over thevertical gridline where the selected group of cells is to be insertedand the movable border has collapsed to signify an insertion.

[0019]FIG. 8 shows an electronic spreadsheet window, as viewed on adisplay screen, after a user has collapsed the movable border over avertical gridline and released the predefined mouse button, causing theselected group of cells to be inserted at that place in the worksheet.

[0020]FIGS. 9a-9 b are detailed flow diagrams of the cell manipulationprocess.

DETAILED DESCRIPTION OF THE INVENTION

[0021] The present invention is best understood with reference to thepreferred embodiment illustrated in FIGS. 1-9.

[0022]FIG. 1 illustrates a computer system 10 running an electronicspreadsheet program. The computer system 10 comprises a CPU 1, a mouseinput device 2 including a control input button 3, a keyboard 4 and adisplay screen 5. The control input button 3 actuates a contact switchto generate selection signals and other commands. The user moves themouse along a flat surface to generate pointer position input commandswhich are supplied to the CPU 1. Mouse movement is translated into x-ycoordinates on the display screen 5 in a known manner. A pointer 6 onthe display screen 5 moves in connection with the mouse 2.

[0023]FIG. 2 shows a typical electronic spreadsheet window 7 and apointer 6 as they are seen on the display screen 5 of FIG. 1. Theworksheet contains a grid of columns and rows, the intersection of whichis referred to as a cell. The mouse 2 is used to position the pointer 6,normally in the shape of a plus sign, over the cells displayed in thespreadsheet window. When the mouse button 3 is depressed, the cell underthe pointer 6 is given a dark border and it becomes the active cell. Ifthe mouse 2 is moved while the mouse button 3 is depressed, theselection is continued and additional cells are surrounded by the darkborder as the pointer is dragged over them to signify selection. Thedark border 9 will appear around the cells as they are selected. All ofthe selected cells will be black except for the first cell in theselection, called the active cell, which remains white. The selectionbegins with the cell over which the pointer is positioned when the mousebutton 3 is depressed, and continues to the cell over which the pointeris positioned when the mouse button 3 is released.

[0024] FIGS. 3-8 are screen prints which illustrate a preferredembodiment of this invention. FIG. 3 shows a user selected group ofcells 8 surrounded by a dark border 9 on the display screen. Note thatthe first cell selected remains white while the other selected cells areblack. The pointer 6 remains in the shape of a plus sign while theselection is being made. After a selection is made, if the mouse button3 is depressed when the pointer 6 is not over any part of the darkborder of the selected cells 9, the selection is cancelled and a newactive cell is created under the pointer. FIG. 4 shows the new shape ofthe pointer 6 after it has been positioned over the dark border 9 of theselected group of cells 8. In the preferred embodiment described herein,the pointer 6 takes the shape of a slanted arrow while it is positionedover the dark border 9 of the selected group of cells 8, indicating tothe user that the border can be moved. After the group of cells isselected, it is treated as a single object.

[0025]FIG. 5 illustrates the computer screen after the user has draggedthe dark border 9 to the location 11 in the document where the selectedgroup of cells 8 is to be placed. The dark border 9 was moved across theworksheet by the user positioning the pointer over the dark border,depressing a predefined mouse button, and then holding down the mousebutton while repositioning the pointer.

[0026]FIG. 6 shows the results of the cell manipulation, in this case amove operation. The contents of the selected group of cells 8 were movedto the cells 11 surrounded by the dark border 9 in FIG. 6 after the userreleased the mouse button. Note that in a default move operation, thecontents of the selected group of cells 8 are placed over the contentsof the existing group of cells 11 which are surrounded by the darkborder 9. The contents of the selected group of cells 8 are cleared butthe cells themselves are still present in the worksheet. In order forthe selected group of cells to be deleted from the worksheet after thecontents are moved, an entire row or column would have to make up theoriginal selection. Referring to FIG. 6, if columns B and C had beenselected instead of cells B4 through C10, then columns B and C woulddisappear and the columns to the right of column C would all shift tothe left two columns after the move operation was completed.

[0027]FIG. 7 illustrates a move operation in which the selected group ofcells 8 will be inserted between already existing cells in the worksheetrather than pasted over the existing cells. During the cell manipulationprocess, when the user is dragging the dark border 9 across theworksheet with the pointer 6, the dark border 9 collapses into an I-beamwhen the user depresses a predefined control key, such as the shift key.The I-beam is vertical or horizontal depending upon whether the pointeris positioned over a vertical or horizontal gridline. FIG. 7 shows anexample of the dark border 9 after it has collapsed into a verticalI-beam, the height of the I-beam corresponding to the height of theselected group of cells 8. The pointer 6 also changes shape to indicatethat an insert is about to occur. If the control key is released, theoriginal expanded border reappears with its original size and shape. Asalternate embodiments of the present invention, an insert mode could beactivated in other ways.

[0028]FIG. 8 illustrates the computer screen after the user has draggedthe dark border 9 to the location in the worksheet where the selectedgroup of cells 8 is to be inserted. The selected group of cells 8 isinserted between the cells bounded by the I-beam. The example used inFIG. 8 shows that two columns were inserted into the worksheetcorresponding to the two columns of the selected group of cells. Notethat only rows 10 through 16 were affected by the insertion.

[0029]FIGS. 9a and 9 b make up a detailed flow diagram of a preferredembodiment of this invention. The process begins with block 101, wherethe user must select a cell or group of cells in the worksheet. In block102, the process creates an outside border around the selected cells asthey are selected. The background of the cells will be black with theactive cell remaining white. The active cell is the first cell in whichthe user positioned the pointer and initially depressed the mousebutton. The process continues on to block 103 where it queries whetherthe pointer is positioned over any part of the outside border of theselected group of cells. If the pointer is not positioned over any partof the outside border of the selected group of cells, the process setsthe pointer shape to a plus sign in block 103 a. The process thenqueries in block 104 whether the mouse button is down. If the mousebutton is down and the pointer is not positioned over any part of theoutside border of the selected group of cells, the selection iscancelled in block 105, the highlighting disappears, and the user maymake a new selection. The cell under the pointer when the mouse buttonis depressed becomes the new active cell. If the process determines inblock 104 that the mouse button is not down, it loops back to block 103to check the location of the pointer.

[0030] If the process determines in block 103 that the pointer ispositioned over the outside border of the selected group of cells, itproceeds to block 106, where the pointer shape is changed. In thepreferred embodiment described herein, the pointer is changed from itsnormal shape of a plus sign to a slanted arrow. Once the pointer ispositioned over the outside border of the selected group of cells, theprocess queries in block 107 whether the mouse button is down. If themouse button is not down, the process loops back to block 103 to checkthe location of the pointer. If the mouse button is down, the processcontinues on to block 108 where the outside border of the selected groupof cells moves across the worksheet corresponding to the pointermovement. The border will always follow the user's drag instead ofremaining with the selected group of cells. The outside border followsthe pointer relative to the position where the border was picked up bythe pointer. The user cannot see the actual data in the selected groupof cells dragging along, just the shape indicated by the border. Themoveable border remains the same shape and dimension as the selectedgroup of cells, unless an insert is to occur. In the case of an insert,the border collapses to an I-beam. An insert operation is describedbelow.

[0031] The process continues on to block 109 in FIG. 10b where itqueries whether the mouse button is down. If the mouse button is down,the border is still moving around the worksheet relative to the user'smovement of the pointer. In blocks 110-112, the process checks to see ifthe user has indicated that the selected cells should be inserted intothe worksheet rather than pasted over existing cells. To visuallyconfirm that an insert rather than a paste will occur when the mousebutton is released, the moveable border is collapsed into an I-beam. TheI-beam is horizontal if the insert is going to occur over a horizontalgridline, or vertical if the insert is going to occur over a verticalgridline. In a preferred embodiment of the present invention, the usermust depress a predefined control key to cause an insertion or theprocess will paste the contents of the selected cells over existingcells in the worksheet. In block 110, the process queries whether acontrol key is depressed. A control key could be any predefined keyboardkey or another predefined mouse button. If a control key is depressed,the process continues on to block 112 where the moveable border ischanged to a horizontal or vertical I-beam, corresponding to whether thepointer is positioned over a horizontal or vertical gridline. The I-beamindicates that an insertion is going to occur if the mouse button isreleased while the control key is depressed. For inserts betweencolumns, the collapsed border is a vertical, dark I-beam, with the sameheight as the number of rows that the insert is going to affect. Thevertical, dark I-beam lets the user vertically align the cells about tobe inserted using the end marks as visual cues. For inserts betweenrows, the collapsed border is a horizontal, dark I-beam, with the samewidth as the number of columns that the insert is going to affect. Thehorizontal, dark I-beam gives the same help in horizontally aligning thecells about to be inserted using the end marks as visual cues. Alongwith the I-beam, the pointer will also change shape to indicate aninsertion. In the preferred embodiment described herein, the pointershape is changed to arrows 6 which are shown in FIG. 8.

[0032] If the process determines in block 110 that a control key is notdepressed, the process continues on to block 111 to change the shape ofthe moveable border back to its original expanded shape. After the shapeof the moveable border has been changed in blocks 111 and 112, theprocess loops back to block 109 to check whether the mouse button isdown If the process determines in block 109 that the mouse button is notdown, it skips to block 113 where it queries whether a control key isdepressed. If a control key is depressed, the process continues on toblock 114 where the selected cells are inserted into the worksheet atthe location marked by the I-beam. If a control key is not depressed,the process skips to block 115 where it pastes the contents of selectedcells over the cells which are bounded by the relocated border. Theselected cells, in their original location in the worksheet, are clearedor deleted depending on whether the original selection encompassed anarbitrary selection, or an entire row or column

[0033] Although the methods and systems of the present invention havebeen described in terms of preferred embodiments, it is not intendedthat the invention be limited to these embodiments. Modifications withinthe spirit the invention will be apparent to those skilled in the art.The scope of the present invention is defined by the claims that follow.

What is claimed is:
 1. In a computer system having a display device, amouse having a predefined mouse button and controlling movement of apointer displayed on the display device, and a spreadsheet having aplurality of cells, wherein at least one cell contains data manipulableby the spreadsheet, the spreadsheet being displayed on the displaydevice, a method of transferring spreadsheet-manipulable contentsassociated with a first cell into a second cell, the method comprisingthe acts of: transferring the spreadsheet-manipulable contentsassociated with the first cell to the second cell in response to userinput commands consisting essentially of: a first user command selectingthe first cell in the spreadsheet; a second user command comprisingpositioning a pointer over the first cell, depressing the predefinedmouse button, and dragging the first cell to the second cell; and athird user command releasing the predefined mouse button.
 2. A method asdefined in claim 1, wherein the spreadsheet-manipulable data relates toa mathematical formula.
 3. A method of manipulating data in a computersystem, the computer system having a display device and a usercontrollable pointer positioning device with signal generating means,the pointer positioning device controlling movement of a pointerdisplayed on the display device, wherein a program is operating on thecomputer system, the program using a worksheet to store and manipulatedata, the worksheet consisting of a grid of intersecting columns androws, wherein the intersection of each column and row is a cell capableof containing data manipulable by the program, the method comprising theacts of: in response to input, selecting a cell or a plurality of cellsin the worksheet; in response to movement of the pointer positioningdevice, positioning the pointer over the selected cell or plurality ofcells; activating a drag mode in response to both the selection of thecell or plurality of cells and the activation of the signal generatingmeans while the pointer is positioned over the selected cell orplurality of cells; in response to movement of the pointer positioningdevice while the drag mode is activated, positioning the pointer over acell or a plurality of cells in a new area of the worksheet; in responseto deactivation of the signal generating means, deactivating the dragmode; and in response to deactivating the drag mode, moving the datacontained in the selected cell or plurality of cells to the cell orplurality of cells in the new area of the worksheet thereby enabling theprogram to modify the moved data.
 4. In a computer system having adisplay device, a mouse having a predefined mouse button and controllingmovement of a pointer displayed on the display device as a first shape,and a spreadsheet having a plurality of cells, wherein at least one cellcontains data manipulable by the spreadsheet, the spreadsheet beingdisplayed on the display device, a method of transferringspreadsheet-manipulable contents associated with a first cell into asecond cell, the method comprising acts of: in response to input,drawing an outside border around the first cell in the spreadsheet; inresponse to movement of the mouse, positioning the pointer over thefirst cell and changing appearance of the pointer to a second shape toindicate that the outside border may be dragged across the spreadsheet;in response to depression of the predefined mouse button while thepointer appears as the second shape and movement of the mouse with thepredefined mouse button depressed, dragging the outside border to thesecond cell; and in response to a release of the predefined mousebutton, moving the contents associated with the first cell into thesecond cell.
 5. A method as defined in claim 4, wherein thespreadsheet-manipulable contents relate to a mathematical formula.
 6. Amethod as defined in claim 4, wherein the changing act compriseschanging the appearance of the pointer from the first shape to thesecond shape as the pointer is positioned over the outside border.
 7. Amethod as defined in claim 6, wherein the first shape is a plus sign. 8.A method as defined in claim 6, wherein the second shape is an arrow.